#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <unistd.h>
#include <string.h>


// 定义枚举
enum DO_FUNCTION_ENUM_DEFINE
{
    DO_FUNCTION_0 = 0,   // 枚举是常量，这里赋值初始值。第一个值不赋初始值默认也是0。
    DO_FUNCTION_1,       // 如果第一个之后的枚举不赋值，默认前一个枚举+1。DO_FUNCTION_1 = 1
    DO_FUNCTION_2,       // 如果第一个之后的枚举不赋值，默认前一个枚举+1。DO_FUNCTION_2 = 2
    DO_FUNCTION_MAX,     // 3
    DO_FUNCTION_3 = 10, // 这个枚举位10
    DO_FUNCTION_4,       // 如果第一个之后的枚举不赋值，默认前一个枚举+1。DO_FUNCTION_4 = 11
};

int main(int argc, char **argv)
{
    // __func__是函数名字符串。
    printf("[%s,%d]enum value = %d\n", __func__, __LINE__, DO_FUNCTION_0);
    printf("[%s,%d]enum value = %d\n", __func__, __LINE__, DO_FUNCTION_1);
    printf("[%s,%d]enum value = %d\n", __func__, __LINE__, DO_FUNCTION_2);
    printf("[%s,%d]enum value = %d\n", __func__, __LINE__, DO_FUNCTION_MAX);
    printf("[%s,%d]enum value = %d\n", __func__, __LINE__, DO_FUNCTION_3);
    printf("[%s,%d]enum value = %d\n", __func__, __LINE__, DO_FUNCTION_4);
    {
        enum DO_FUNCTION_ENUM_DEFINE tmpenum;
        tmpenum = 40;    
        printf("[%s,%d]enum value = %d\n", __func__, __LINE__, tmpenum);
    }
    return 1;
}
